package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseBaseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;
@Api(value = "课程基本信息管理Api",tags = "课程基本信息业务管理")
public interface CourseBaseApi {
//    @ApiOperation("查询全部课程信息")
//    //@GetMapping("/course/all")
//    List<CourseBase> queryAll();
    @ApiOperation("分页查询课程的基本信息")
    PageVO queryCourseBaseList(PageRequestParams params, QueryCourseBaseModel model);

    @ApiOperation("课程新增信息")
    @ApiImplicitParam(name = "courseBaseVO",value = "前端传入新增课程信息的封装类",
            required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO createCourseBase(CourseBaseVO courseBaseVO);
    @ApiOperation("根据id查询课程基础信息")
    CourseBaseDTO getById(Long courseId);


    @ApiOperation("课程修改信息")
    @ApiImplicitParam(name = "courseBaseVO",value = "前端传入修改课程信息的封装类",
            required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO modifyCourseBase(CourseBaseVO courseBaseVO);

    @ApiOperation("删除课程")
    @ApiImplicitParam(name = "courseBaseId",value = "根据课程id删除",
            required = true,dataType = "Long",paramType = "path")
    void removeCourseBase(Long courseBaseId);

    @ApiOperation("提交审核")
    @ApiImplicitParam(name = "commitCourseBase",value = "提交课程信息(基本信息,营销信息,课程计划)进行审核",
            required = true,dataType = "Long",paramType = "query")
    void commitCourseBase(Long courseBaseId);
}
